Entrez Direct(EDirect)提供从UNIX终端窗口访问NCBI的互连数据库套件(发布,序列,结构,基因,变异,表达等)。函数从命令行参数中获取搜索项。将各个操作组合在一起以构建多步查询。记录检索和格式化通常会完成整个过程。
EDirect还包括一个参数驱动函数,它简化了从文档摘要或结构化XML格式返回的其他结果中提取数据的过程。这可以消除编写自定义软件以回答临时问题的需要。查询可以在EDirect命令和UNIX实用程序或脚本之间无缝移动,以执行无法在Entrez中完全完成的操作。
测试平台
MacMini 2.6 GHz Intel Core i5,macOS Mojave 10.14.2
安装
进入工作文件夹
创建src文件夹
进入src文件夹
下载edirect
解压缩
进入edirect文件夹并查看
你可能已经发现setup,没错,这个就是安装文件
稍(喝)等(杯)片(茶)刻(吧),当看到输出
|
|
恭喜安装成功!
配置环境变量
把上面打印出来的 echo “export PATH=\${PATH}:/Users/adu/work/src/edirect” >> $HOME/.bash_profile 放到终端中,并回车已告诉系统EDirect的安装位置。注意每个人的安装路径都不一样,不要复制这里的应该复制你终端打印出来的。
|
|
如果出现 -bash: esearch: command not found 说明环境变量没有配置正确。
看到 esearch 11.1,说明可以愉快的使用 eDirect了
Entrez Direct 函数
导航功能支持Entrez数据库中的探索:
- esearch使用索引字段中的术语执行新的Entrez搜索。
- elink查找邻居(在数据库中)或链接(在数据库之间)。
- efilter过滤或限制先前查询的结果。
可以指定格式或文档摘要检索记录:
- efetch以指定格式下载记录或报告。
无需编写程序即可提取XML结果中的所需字段:
- xtract将EDirect XML输出转换为数据值表。
还提供了几个附加功能:
- einfo获取Entrez数据库中索引字段的信息。
- epost上传唯一标识符(UID)或序列登录号。
- nquire向网页或CGI服务发送URL请求。
esearch语法
|
|
databaseName(required)
数据库名字。指定数据库里查询
queryString(required)
查询关键字。在所在的数据库里查询的关键字
例子
在pubmed数据库中查询 “opsin gene conversion”
#######构建多步查询
edirect允许单独执行各个操作,通过使用竖线(“|”)Unix管道符号将它们组合成一个多步骤查询。从esearch到elink:
将查找初始结果的相关文章(预先计算的PubMed邻居)。
#######在多行上写入命令
通过在按回车键之前立即键入反斜杠(“\”)unix转义符,可以在下一行继续查询。继续查询链接到相关文章中发布的所有蛋白质序列:
垂直条管道符号还允许在下一行继续查询。
#######检索PubMed报告
通过管道将pubmed查询结果传送到efetch并指定“abstract”格式:
使用efetch格式的“medline”可生成一份报告,该报告可输入通用书目管理软件包中:
#######检索序列报告
核苷酸和蛋白质记录可以用fasta格式下载:
其他FASTA格式的变体是fasta-cds-na、fasta-cds-aa和gene-fasta
序列记录也可以以genbank(-format gb)或genpept(-format gp)格式文件获得,这些文件具有注释序列特定区域的功能:
搜索和筛选
####### 限制查询结果
目前的结果可以通过Entrez中的进一步术语搜索来改进(在蛋白质数据库中用于将BLAST邻居限制为分类子集):
结果也可以按时间过滤。例如,以下语句:
|
|
将结果分别限制在前两个月或1990年代发表的文章中。
####### 索引字段的合格查询
可以通过在括号中输入索引字段缩写来限定esearch或efilter中的查询字词。布尔运算符和括号也可以在查询表达式中用于更复杂的搜索。
PubMed查询的常用字段包括:
Item | Value |
---|---|
[AFFL] | Affiliation |
[ALL] | All Fields |
[AUTH] | Author |
[FAUT] | Author - First |
[LAUT] | Author - Last |
[PDAT] | Date - Publication |
[FILT] | Filter |
[JOUR] | Journal |
[LANG] | Language |
[MAJR] | MeSH Major Topic |
[SUBH] | MeSH Subheading |
[MESH] | MeSH Terms |
[PTYP] | Publication Type |
[WORD] | Text Word |
[TITL] | Title |
[TIAB] | Title/Abstract |
[UID] | UID |
一个合格的查询看起来像:
结果如下
将搜索结果限制为PubMed子集的过滤器包括:
Item | Value |
---|---|
humans | [MESH] |
pharmacokinetics | [MESH] |
chemically induced | [SUBH] |
all child | [FILT] |
english | [FILT] |
freetext | [FILT] |
has abstract | [FILT] |
historical article | [FILT] |
randomized controlled trial | [FILT] |
clinical trial, phase ii | [PTYP] |
review | [PTYP] |
序列数据库使用一组不同的搜索字段编制索引,包括:
Item | Value |
---|---|
[ACCN] | Accession |
[ALL] | All Fields |
[AUTH] | Author |
[GPRJ] | BioProject |
[ECNO] | EC/RN Number |
[FKEY] | Feature key |
[FILT] | Filter |
[GENE] | Gene Name |
[JOUR] | Journal |
[KYWD] | Keyword |
[MLWT] | Molecular Weight |
[ORGN] | Organism |
[PACC] | Primary Accession |
[PROP] | Properties |
[PROT] | Protein Name |
[SQID] | SeqID String |
[SLEN] | Sequence Length |
[SUBS] | Substance Name |
[WORD] | Text Word |
[TITL] | Title |
[UID] | UID |
并且蛋白质数据库中的样本查询是:
结果如下
序列数据库中子集过滤器的其他示例如下:
Item | Value |
---|---|
mammalia | [ORGN] |
mammalia | [ORGN:noexp] |
cds | [FKEY] |
lacz | [GENE] |
beta galactosidase | [PROT] |
protein snp | [FILT] |
reviewed | [FILT] |
country united kingdom glasgow | [TEXT] |
biomol genomic | [PROP] |
dbxref flybase | [PROP] |
gbdiv phg | [PROP] |
phylogenetic study | [PROP] |
sequence from mitochondrion | [PROP] |
src cultivar | [PROP] |
srcdb refseq validated | [PROP] |
150:200 | [SLEN] |
(计算的分子量(MLWT)字段仅针对蛋白质(和结构)而非核苷酸编制索引。)
####### 检查中间结果
EDirect将中间结果存储在Entrez历史服务器上。 EDirect导航功能生成一个自定义XML消息,其中包含相关字段(数据库,Web环境,查询键和记录计数),可以读取管道中的下一个命令。
在添加下一步骤之前,可以检查查询中每个步骤的结果以确认预期的行为。 ENTREZ_DIRECT对象中的Count字段包含上一步返回的记录数。查询成功的一个很好的衡量标准是合理的(非零)计数值。例如:
结果如下:
在指定的分子量范围内具有39个蛋白质结构并具有所需的(X射线晶体学)原子位置分辨率。
(QueryKey值为7而不是5,因为每个elink命令通过在ELink操作之后立即运行单独的ESearch查询来获取记录计数。)
####### 结合独立查询
可以执行独立的esearch,elink和efilter操作,然后使用历史服务器的“#”约定来表示查询键号。 (要组合的步骤必须位于同一个数据库中。)后续的esearch命令可以使用-db参数覆盖上一步中传送的数据库。 (将查询连接在一起对于共享相同的历史记录线程是必要的。)例如,查询:
|
|
使用截断搜索(输入单词的开头后跟星号)返回与淀粉样蛋白序列和载脂蛋白基因记录相关的论文标题:
|
|
使用(#3)AND(#6)代替上面的(#2)AND(#4)反映了每个elink命令执行单独的ESearch查询的需要,该查询增加QueryKey,以获得记录计数。 -label参数可用于绕过此工件。标签值以“#”符号为前缀,并放在最终搜索的括号中。从而:
|
|
将返回:
无需跟踪内部QueryKey值。